Intersymbol interference results from the fact that a typical communications channel inherently has memory such that other signals transmitted through the channel interfere with the current, transmitted signal. Prior techniques for minimizing the effects of intersymbol interference have involved "precoding" the signal to be transmitted. These prior art techniques, while allowing both coding and shaping gains on intersymbol interference channels, provide sub-optimal performance because of the "precoding loss" (i.e., the additional power that must be transmitted to minimize the effects of intersymbol interference) associated with these techniques. Because the precoding loss increases whin a more powerful trellis code is used, such precoders cannot approach the channel capacity.
One technique for minimizing the effects of intersymbol interference involves precoding a sequence of signal points to achieve noise whitening on intersymbol interference channels. This precoding is a nonlinear operation that ensures that the channel output or the output of a noise whitening filter is a trellis code sequence affected by additive white Gaussian noise. A so-called "dither signal" is added to each of the signal points in the sequence.. No coding operation (i.e., an operation which achieves coding gain) is performed as part of precoding. Rather, precoding is performed on a sequence of previously trellis coded signal points which could be selected from a shaped constellation. Precoding is performed by using a modulo .lambda.', operation, where .lambda.' is the coset lattice, that is, the lattice in the last level of coset partitioning used to generate the trellis code. Using this scheme, the precoding loss is large when the trellis code is based on a large number of coset partitions. The performance of this scheme degrades with the number of coset partitions used to generate the trellis code.